home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / dns_server.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  91 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(11002);
  10.  
  11.  script_version ("$Revision: 1.6 $");
  12.  name["english"] = "DNS Server Detection";
  13.  script_name(english:name["english"]);
  14.  
  15.  desc["english"] = "
  16. A DNS server is running on this port. If you do not use it, disable it.
  17.  
  18. Risk factor : Low";
  19.  
  20.  
  21.  
  22.  script_description(english:desc["english"]);
  23.  
  24.  summary["english"] = "detects a running name server";
  25.  script_summary(english:summary["english"]);
  26.  
  27.  script_category(ACT_GATHER_INFO);
  28.  
  29.  script_copyright(english:"This script is Copyright (C) 2003 Renaud Deraison");
  30.  family["english"] = "General";
  31.  script_family(english:family["english"]);
  32.  
  33.  exit(0);
  34. }
  35.  
  36. #
  37. # We ask the nameserver to resolve 127.0.0.1
  38. #
  39.  
  40. include("misc_func.inc");
  41.  
  42. req = raw_string(0x4C, 0x55, 0x01, 0x00, 0x00, 0x01,
  43.          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x31,
  44.          0x01, 0x30, 0x01, 0x30, 0x03, 0x31, 0x32, 0x37,
  45.          0x07, 0x49, 0x4E, 0x2D, 0x41, 0x44, 0x44, 0x52, 
  46.          0x04, 0x41, 0x52, 0x50, 0x41, 0x00, 0x00, 0x0C,
  47.          0x00, 0x01);
  48.          
  49.          
  50. if(get_udp_port_state(53))
  51. {
  52.  soc = open_sock_udp(53);
  53.  send(socket:soc, data:req);
  54.  r = recv(socket:soc, length:1024);
  55.  if(strlen(r) > 3)
  56.  {
  57.   flags = ord(r[2]);
  58.   if(flags & 0x80){
  59.     security_note(port:53, protocol:"udp");
  60.     set_kb_item(name:"DNS/udp/53", value:TRUE);
  61.     }
  62.  }
  63. }
  64.  
  65.  
  66. if(get_port_state(53))
  67.  soc = open_sock_tcp(53);
  68.  if(!soc)exit(0);
  69.  len = strlen(req);
  70.  len_hi = len / 256;
  71.  len_lo = len % 256;
  72.  req = string(raw_string(len_hi, len_lo), req);
  73.  send(socket:soc, data:req);
  74.  r = recv(socket:soc, length:2, min:2);
  75.  if ( ! r ) exit(0);
  76.  len = ord(r[0]) * 256 + ord(r[1]);
  77.  if ( len > 128 ) len = 128;
  78.  r = strcat(r, recv(socket:soc, length:len, min:len));
  79.  if(strlen(r) > 5)
  80.  {
  81.   flags = ord(r[4]);
  82.   if(flags & 0x80){
  83.       security_note(53);
  84.     register_service(port: 53, proto: "dns");
  85.     }
  86.  }
  87. }
  88.  
  89.          
  90.